/**
 * Copyright (C) 2001-2018 by RapidMiner and the contributors
 * 
 * Complete list of developers available at our web site:
 * 
 * http://rapidminer.com
 * 
 * This program is free software: you can redistribute it and/or modify it under the terms of the
 * GNU Affero General Public License as published by the Free Software Foundation, either version 3
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License along with this program.
 * If not, see http://www.gnu.org/licenses/.
*/
package com.rapidminer.gui.tools;

import java.awt.Font;
import java.awt.FontFormatException;
import java.awt.GraphicsEnvironment;
import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Level;

import com.rapidminer.tools.LogService;


/**
 * Enum for ionicons. The method {@link #getHtml()} supplies the html to include
 * the ionicon into an html label.
 *
 * @author Gisa Schaefer
 *
 */
public enum Ionicon {
	ALERT('\uf101'),
	ALERT_CIRCLED('\uf100'),
	ANDROID_ADD('\uf2c7'),
	ANDROID_ADD_CIRCLE('\uf359'),
	ANDROID_ALARM_CLOCK('\uf35a'),
	ANDROID_ALERT('\uf35b'),
	ANDROID_APPS('\uf35c'),
	ANDROID_ARCHIVE('\uf2c9'),
	ANDROID_ARROW_BACK('\uf2ca'),
	ANDROID_ARROW_DOWN('\uf35d'),
	ANDROID_ARROW_DROPDOWN('\uf35f'),
	ANDROID_ARROW_DROPDOWN_CIRCLE('\uf35e'),
	ANDROID_ARROW_DROPLEFT('\uf361'),
	ANDROID_ARROW_DROPLEFT_CIRCLE('\uf360'),
	ANDROID_ARROW_DROPRIGHT('\uf363'),
	ANDROID_ARROW_DROPRIGHT_CIRCLE('\uf362'),
	ANDROID_ARROW_DROPUP('\uf365'),
	ANDROID_ARROW_DROPUP_CIRCLE('\uf364'),
	ANDROID_ARROW_FORWARD('\uf30f'),
	ANDROID_ARROW_UP('\uf366'),
	ANDROID_ATTACH('\uf367'),
	ANDROID_BAR('\uf368'),
	ANDROID_BICYCLE('\uf369'),
	ANDROID_BOAT('\uf36a'),
	ANDROID_BOOKMARK('\uf36b'),
	ANDROID_BULB('\uf36c'),
	ANDROID_BUS('\uf36d'),
	ANDROID_CALENDAR('\uf2d1'),
	ANDROID_CALL('\uf2d2'),
	ANDROID_CAMERA('\uf2d3'),
	ANDROID_CANCEL('\uf36e'),
	ANDROID_CAR('\uf36f'),
	ANDROID_CART('\uf370'),
	ANDROID_CHAT('\uf2d4'),
	ANDROID_CHECKBOX('\uf374'),
	ANDROID_CHECKBOX_BLANK('\uf371'),
	ANDROID_CHECKBOX_OUTLINE('\uf373'),
	ANDROID_CHECKBOX_OUTLINE_BLANK('\uf372'),
	ANDROID_CHECKMARK_CIRCLE('\uf375'),
	ANDROID_CLIPBOARD('\uf376'),
	ANDROID_CLOSE('\uf2d7'),
	ANDROID_CLOUD('\uf37a'),
	ANDROID_CLOUD_CIRCLE('\uf377'),
	ANDROID_CLOUD_DONE('\uf378'),
	ANDROID_CLOUD_OUTLINE('\uf379'),
	ANDROID_COLOR_PALETTE('\uf37b'),
	ANDROID_COMPASS('\uf37c'),
	ANDROID_CONTACT('\uf2d8'),
	ANDROID_CONTACTS('\uf2d9'),
	ANDROID_CONTRACT('\uf37d'),
	ANDROID_CREATE('\uf37e'),
	ANDROID_DELETE('\uf37f'),
	ANDROID_DESKTOP('\uf380'),
	ANDROID_DOCUMENT('\uf381'),
	ANDROID_DONE('\uf383'),
	ANDROID_DONE_ALL('\uf382'),
	ANDROID_DOWNLOAD('\uf2dd'),
	ANDROID_DRAFTS('\uf384'),
	ANDROID_EXIT('\uf385'),
	ANDROID_EXPAND('\uf386'),
	ANDROID_FAVORITE('\uf388'),
	ANDROID_FAVORITE_OUTLINE('\uf387'),
	ANDROID_FILM('\uf389'),
	ANDROID_FOLDER('\uf2e0'),
	ANDROID_FOLDER_OPEN('\uf38a'),
	ANDROID_FUNNEL('\uf38b'),
	ANDROID_GLOBE('\uf38c'),
	ANDROID_HAND('\uf2e3'),
	ANDROID_HANGOUT('\uf38d'),
	ANDROID_HAPPY('\uf38e'),
	ANDROID_HOME('\uf38f'),
	ANDROID_IMAGE('\uf2e4'),
	ANDROID_LAPTOP('\uf390'),
	ANDROID_LIST('\uf391'),
	ANDROID_LOCATE('\uf2e9'),
	ANDROID_LOCK('\uf392'),
	ANDROID_MAIL('\uf2eb'),
	ANDROID_MAP('\uf393'),
	ANDROID_MENU('\uf394'),
	ANDROID_MICROPHONE('\uf2ec'),
	ANDROID_MICROPHONE_OFF('\uf395'),
	ANDROID_MORE_HORIZONTAL('\uf396'),
	ANDROID_MORE_VERTICAL('\uf397'),
	ANDROID_NAVIGATE('\uf398'),
	ANDROID_NOTIFICATIONS('\uf39b'),
	ANDROID_NOTIFICATIONS_NONE('\uf399'),
	ANDROID_NOTIFICATIONS_OFF('\uf39a'),
	ANDROID_OPEN('\uf39c'),
	ANDROID_OPTIONS('\uf39d'),
	ANDROID_PEOPLE('\uf39e'),
	ANDROID_PERSON('\uf3a0'),
	ANDROID_PERSON_ADD('\uf39f'),
	ANDROID_PHONE_LANDSCAPE('\uf3a1'),
	ANDROID_PHONE_PORTRAIT('\uf3a2'),
	ANDROID_PIN('\uf3a3'),
	ANDROID_PLANE('\uf3a4'),
	ANDROID_PLAYSTORE('\uf2f0'),
	ANDROID_PRINT('\uf3a5'),
	ANDROID_RADIO_BUTTON_OFF('\uf3a6'),
	ANDROID_RADIO_BUTTON_ON('\uf3a7'),
	ANDROID_REFRESH('\uf3a8'),
	ANDROID_REMOVE('\uf2f4'),
	ANDROID_REMOVE_CIRCLE('\uf3a9'),
	ANDROID_RESTAURANT('\uf3aa'),
	ANDROID_SAD('\uf3ab'),
	ANDROID_SEARCH('\uf2f5'),
	ANDROID_SEND('\uf2f6'),
	ANDROID_SETTINGS('\uf2f7'),
	ANDROID_SHARE('\uf2f8'),
	ANDROID_SHARE_ALT('\uf3ac'),
	ANDROID_STAR('\uf2fc'),
	ANDROID_STAR_HALF('\uf3ad'),
	ANDROID_STAR_OUTLINE('\uf3ae'),
	ANDROID_STOPWATCH('\uf2fd'),
	ANDROID_SUBWAY('\uf3af'),
	ANDROID_SUNNY('\uf3b0'),
	ANDROID_SYNC('\uf3b1'),
	ANDROID_TEXTSMS('\uf3b2'),
	ANDROID_TIME('\uf3b3'),
	ANDROID_TRAIN('\uf3b4'),
	ANDROID_UNLOCK('\uf3b5'),
	ANDROID_UPLOAD('\uf3b6'),
	ANDROID_VOLUME_DOWN('\uf3b7'),
	ANDROID_VOLUME_MUTE('\uf3b8'),
	ANDROID_VOLUME_OFF('\uf3b9'),
	ANDROID_VOLUME_UP('\uf3ba'),
	ANDROID_WALK('\uf3bb'),
	ANDROID_WARNING('\uf3bc'),
	ANDROID_WATCH('\uf3bd'),
	ANDROID_WIFI('\uf305'),
	APERTURE('\uf313'),
	ARCHIVE('\uf102'),
	ARROW_DOWN_A('\uf103'),
	ARROW_DOWN_B('\uf104'),
	ARROW_DOWN_C('\uf105'),
	ARROW_EXPAND('\uf25e'),
	ARROW_GRAPH_DOWN_LEFT('\uf25f'),
	ARROW_GRAPH_DOWN_RIGHT('\uf260'),
	ARROW_GRAPH_UP_LEFT('\uf261'),
	ARROW_GRAPH_UP_RIGHT('\uf262'),
	ARROW_LEFT_A('\uf106'),
	ARROW_LEFT_B('\uf107'),
	ARROW_LEFT_C('\uf108'),
	ARROW_MOVE('\uf263'),
	ARROW_RESIZE('\uf264'),
	ARROW_RETURN_LEFT('\uf265'),
	ARROW_RETURN_RIGHT('\uf266'),
	ARROW_RIGHT_A('\uf109'),
	ARROW_RIGHT_B('\uf10a'),
	ARROW_RIGHT_C('\uf10b'),
	ARROW_SHRINK('\uf267'),
	ARROW_SWAP('\uf268'),
	ARROW_UP_A('\uf10c'),
	ARROW_UP_B('\uf10d'),
	ARROW_UP_C('\uf10e'),
	ASTERISK('\uf314'),
	AT('\uf10f'),
	BACKSPACE('\uf3bf'),
	BACKSPACE_OUTLINE('\uf3be'),
	BAG('\uf110'),
	BATTERY_CHARGING('\uf111'),
	BATTERY_EMPTY('\uf112'),
	BATTERY_FULL('\uf113'),
	BATTERY_HALF('\uf114'),
	BATTERY_LOW('\uf115'),
	BEAKER('\uf269'),
	BEER('\uf26a'),
	BLUETOOTH('\uf116'),
	BONFIRE('\uf315'),
	BOOKMARK('\uf26b'),
	BOWTIE('\uf3c0'),
	BRIEFCASE('\uf26c'),
	BUG('\uf2be'),
	CALCULATOR('\uf26d'),
	CALENDAR('\uf117'),
	CAMERA('\uf118'),
	CARD('\uf119'),
	CASH('\uf316'),
	CHATBOX('\uf11b'),
	CHATBOX_WORKING('\uf11a'),
	CHATBOXES('\uf11c'),
	CHATBUBBLE('\uf11e'),
	CHATBUBBLE_WORKING('\uf11d'),
	CHATBUBBLES('\uf11f'),
	CHECKMARK('\uf122'),
	CHECKMARK_CIRCLED('\uf120'),
	CHECKMARK_ROUND('\uf121'),
	CHEVRON_DOWN('\uf123'),
	CHEVRON_LEFT('\uf124'),
	CHEVRON_RIGHT('\uf125'),
	CHEVRON_UP('\uf126'),
	CLIPBOARD('\uf127'),
	CLOCK('\uf26e'),
	CLOSE('\uf12a'),
	CLOSE_CIRCLED('\uf128'),
	CLOSE_ROUND('\uf129'),
	CLOSED_CAPTIONING('\uf317'),
	CLOUD('\uf12b'),
	CODE('\uf271'),
	CODE_DOWNLOAD('\uf26f'),
	CODE_WORKING('\uf270'),
	COFFEE('\uf272'),
	COMPASS('\uf273'),
	COMPOSE('\uf12c'),
	CONNECTION_BARS('\uf274'),
	CONTRAST('\uf275'),
	CROP('\uf3c1'),
	CUBE('\uf318'),
	DISC('\uf12d'),
	DOCUMENT('\uf12f'),
	DOCUMENT_TEXT('\uf12e'),
	DRAG('\uf130'),
	EARTH('\uf276'),
	EASEL('\uf3c2'),
	EDIT('\uf2bf'),
	EGG('\uf277'),
	EJECT('\uf131'),
	EMAIL('\uf132'),
	EMAIL_UNREAD('\uf3c3'),
	ERLENMEYER_FLASK('\uf3c5'),
	ERLENMEYER_FLASK_BUBBLES('\uf3c4'),
	EYE('\uf133'),
	EYE_DISABLED('\uf306'),
	FEMALE('\uf278'),
	FILING('\uf134'),
	FILM_MARKER('\uf135'),
	FIREBALL('\uf319'),
	FLAG('\uf279'),
	FLAME('\uf31a'),
	FLASH('\uf137'),
	FLASH_OFF('\uf136'),
	FOLDER('\uf139'),
	FORK('\uf27a'),
	FORK_REPO('\uf2c0'),
	FORWARD('\uf13a'),
	FUNNEL('\uf31b'),
	GEAR_A('\uf13d'),
	GEAR_B('\uf13e'),
	GRID('\uf13f'),
	HAMMER('\uf27b'),
	HAPPY('\uf31c'),
	HAPPY_OUTLINE('\uf3c6'),
	HEADPHONE('\uf140'),
	HEART('\uf141'),
	HEART_BROKEN('\uf31d'),
	HELP('\uf143'),
	HELP_BUOY('\uf27c'),
	HELP_CIRCLED('\uf142'),
	HOME('\uf144'),
	ICECREAM('\uf27d'),
	IMAGE('\uf147'),
	IMAGES('\uf148'),
	INFORMATION('\uf14a'),
	INFORMATION_CIRCLED('\uf149'),
	IONIC('\uf14b'),
	IOS_ALARM('\uf3c8'),
	IOS_ALARM_OUTLINE('\uf3c7'),
	IOS_ALBUMS('\uf3ca'),
	IOS_ALBUMS_OUTLINE('\uf3c9'),
	IOS_AMERICANFOOTBALL('\uf3cc'),
	IOS_AMERICANFOOTBALL_OUTLINE('\uf3cb'),
	IOS_ANALYTICS('\uf3ce'),
	IOS_ANALYTICS_OUTLINE('\uf3cd'),
	IOS_ARROW_BACK('\uf3cf'),
	IOS_ARROW_DOWN('\uf3d0'),
	IOS_ARROW_FORWARD('\uf3d1'),
	IOS_ARROW_LEFT('\uf3d2'),
	IOS_ARROW_RIGHT('\uf3d3'),
	IOS_ARROW_THIN_DOWN('\uf3d4'),
	IOS_ARROW_THIN_LEFT('\uf3d5'),
	IOS_ARROW_THIN_RIGHT('\uf3d6'),
	IOS_ARROW_THIN_UP('\uf3d7'),
	IOS_ARROW_UP('\uf3d8'),
	IOS_AT('\uf3da'),
	IOS_AT_OUTLINE('\uf3d9'),
	IOS_BARCODE('\uf3dc'),
	IOS_BARCODE_OUTLINE('\uf3db'),
	IOS_BASEBALL('\uf3de'),
	IOS_BASEBALL_OUTLINE('\uf3dd'),
	IOS_BASKETBALL('\uf3e0'),
	IOS_BASKETBALL_OUTLINE('\uf3df'),
	IOS_BELL('\uf3e2'),
	IOS_BELL_OUTLINE('\uf3e1'),
	IOS_BODY('\uf3e4'),
	IOS_BODY_OUTLINE('\uf3e3'),
	IOS_BOLT('\uf3e6'),
	IOS_BOLT_OUTLINE('\uf3e5'),
	IOS_BOOK('\uf3e8'),
	IOS_BOOK_OUTLINE('\uf3e7'),
	IOS_BOOKMARKS('\uf3ea'),
	IOS_BOOKMARKS_OUTLINE('\uf3e9'),
	IOS_BOX('\uf3ec'),
	IOS_BOX_OUTLINE('\uf3eb'),
	IOS_BRIEFCASE('\uf3ee'),
	IOS_BRIEFCASE_OUTLINE('\uf3ed'),
	IOS_BROWSERS('\uf3f0'),
	IOS_BROWSERS_OUTLINE('\uf3ef'),
	IOS_CALCULATOR('\uf3f2'),
	IOS_CALCULATOR_OUTLINE('\uf3f1'),
	IOS_CALENDAR('\uf3f4'),
	IOS_CALENDAR_OUTLINE('\uf3f3'),
	IOS_CAMERA('\uf3f6'),
	IOS_CAMERA_OUTLINE('\uf3f5'),
	IOS_CART('\uf3f8'),
	IOS_CART_OUTLINE('\uf3f7'),
	IOS_CHATBOXES('\uf3fa'),
	IOS_CHATBOXES_OUTLINE('\uf3f9'),
	IOS_CHATBUBBLE('\uf3fc'),
	IOS_CHATBUBBLE_OUTLINE('\uf3fb'),
	IOS_CHECKMARK('\uf3ff'),
	IOS_CHECKMARK_EMPTY('\uf3fd'),
	IOS_CHECKMARK_OUTLINE('\uf3fe'),
	IOS_CIRCLE_FILLED('\uf400'),
	IOS_CIRCLE_OUTLINE('\uf401'),
	IOS_CLOCK('\uf403'),
	IOS_CLOCK_OUTLINE('\uf402'),
	IOS_CLOSE('\uf406'),
	IOS_CLOSE_EMPTY('\uf404'),
	IOS_CLOSE_OUTLINE('\uf405'),
	IOS_CLOUD('\uf40c'),
	IOS_CLOUD_DOWNLOAD('\uf408'),
	IOS_CLOUD_DOWNLOAD_OUTLINE('\uf407'),
	IOS_CLOUD_OUTLINE('\uf409'),
	IOS_CLOUD_UPLOAD('\uf40b'),
	IOS_CLOUD_UPLOAD_OUTLINE('\uf40a'),
	IOS_CLOUDY('\uf410'),
	IOS_CLOUDY_NIGHT('\uf40e'),
	IOS_CLOUDY_NIGHT_OUTLINE('\uf40d'),
	IOS_CLOUDY_OUTLINE('\uf40f'),
	IOS_COG('\uf412'),
	IOS_COG_OUTLINE('\uf411'),
	IOS_COLOR_FILTER('\uf414'),
	IOS_COLOR_FILTER_OUTLINE('\uf413'),
	IOS_COLOR_WAND('\uf416'),
	IOS_COLOR_WAND_OUTLINE('\uf415'),
	IOS_COMPOSE('\uf418'),
	IOS_COMPOSE_OUTLINE('\uf417'),
	IOS_CONTACT('\uf41a'),
	IOS_CONTACT_OUTLINE('\uf419'),
	IOS_COPY('\uf41c'),
	IOS_COPY_OUTLINE('\uf41b'),
	IOS_CROP('\uf41e'),
	IOS_CROP_STRONG('\uf41d'),
	IOS_DOWNLOAD('\uf420'),
	IOS_DOWNLOAD_OUTLINE('\uf41f'),
	IOS_DRAG('\uf421'),
	IOS_EMAIL('\uf423'),
	IOS_EMAIL_OUTLINE('\uf422'),
	IOS_EYE('\uf425'),
	IOS_EYE_OUTLINE('\uf424'),
	IOS_FASTFORWARD('\uf427'),
	IOS_FASTFORWARD_OUTLINE('\uf426'),
	IOS_FILING('\uf429'),
	IOS_FILING_OUTLINE('\uf428'),
	IOS_FILM('\uf42b'),
	IOS_FILM_OUTLINE('\uf42a'),
	IOS_FLAG('\uf42d'),
	IOS_FLAG_OUTLINE('\uf42c'),
	IOS_FLAME('\uf42f'),
	IOS_FLAME_OUTLINE('\uf42e'),
	IOS_FLASK('\uf431'),
	IOS_FLASK_OUTLINE('\uf430'),
	IOS_FLOWER('\uf433'),
	IOS_FLOWER_OUTLINE('\uf432'),
	IOS_FOLDER('\uf435'),
	IOS_FOLDER_OUTLINE('\uf434'),
	IOS_FOOTBALL('\uf437'),
	IOS_FOOTBALL_OUTLINE('\uf436'),
	IOS_GAME_CONTROLLER_A('\uf439'),
	IOS_GAME_CONTROLLER_A_OUTLINE('\uf438'),
	IOS_GAME_CONTROLLER_B('\uf43b'),
	IOS_GAME_CONTROLLER_B_OUTLINE('\uf43a'),
	IOS_GEAR('\uf43d'),
	IOS_GEAR_OUTLINE('\uf43c'),
	IOS_GLASSES('\uf43f'),
	IOS_GLASSES_OUTLINE('\uf43e'),
	IOS_GRID_VIEW('\uf441'),
	IOS_GRID_VIEW_OUTLINE('\uf440'),
	IOS_HEART('\uf443'),
	IOS_HEART_OUTLINE('\uf442'),
	IOS_HELP('\uf446'),
	IOS_HELP_EMPTY('\uf444'),
	IOS_HELP_OUTLINE('\uf445'),
	IOS_HOME('\uf448'),
	IOS_HOME_OUTLINE('\uf447'),
	IOS_INFINITE('\uf44a'),
	IOS_INFINITE_OUTLINE('\uf449'),
	IOS_INFORMATION('\uf44d'),
	IOS_INFORMATION_EMPTY('\uf44b'),
	IOS_INFORMATION_OUTLINE('\uf44c'),
	IOS_IONIC_OUTLINE('\uf44e'),
	IOS_KEYPAD('\uf450'),
	IOS_KEYPAD_OUTLINE('\uf44f'),
	IOS_LIGHTBULB('\uf452'),
	IOS_LIGHTBULB_OUTLINE('\uf451'),
	IOS_LIST('\uf454'),
	IOS_LIST_OUTLINE('\uf453'),
	IOS_LOCATION('\uf456'),
	IOS_LOCATION_OUTLINE('\uf455'),
	IOS_LOCKED('\uf458'),
	IOS_LOCKED_OUTLINE('\uf457'),
	IOS_LOOP('\uf45a'),
	IOS_LOOP_STRONG('\uf459'),
	IOS_MEDICAL('\uf45c'),
	IOS_MEDICAL_OUTLINE('\uf45b'),
	IOS_MEDKIT('\uf45e'),
	IOS_MEDKIT_OUTLINE('\uf45d'),
	IOS_MIC('\uf461'),
	IOS_MIC_OFF('\uf45f'),
	IOS_MIC_OUTLINE('\uf460'),
	IOS_MINUS('\uf464'),
	IOS_MINUS_EMPTY('\uf462'),
	IOS_MINUS_OUTLINE('\uf463'),
	IOS_MONITOR('\uf466'),
	IOS_MONITOR_OUTLINE('\uf465'),
	IOS_MOON('\uf468'),
	IOS_MOON_OUTLINE('\uf467'),
	IOS_MORE('\uf46a'),
	IOS_MORE_OUTLINE('\uf469'),
	IOS_MUSICAL_NOTE('\uf46b'),
	IOS_MUSICAL_NOTES('\uf46c'),
	IOS_NAVIGATE('\uf46e'),
	IOS_NAVIGATE_OUTLINE('\uf46d'),
	IOS_NUTRITION('\uf470'),
	IOS_NUTRITION_OUTLINE('\uf46f'),
	IOS_PAPER('\uf472'),
	IOS_PAPER_OUTLINE('\uf471'),
	IOS_PAPERPLANE('\uf474'),
	IOS_PAPERPLANE_OUTLINE('\uf473'),
	IOS_PARTLYSUNNY('\uf476'),
	IOS_PARTLYSUNNY_OUTLINE('\uf475'),
	IOS_PAUSE('\uf478'),
	IOS_PAUSE_OUTLINE('\uf477'),
	IOS_PAW('\uf47a'),
	IOS_PAW_OUTLINE('\uf479'),
	IOS_PEOPLE('\uf47c'),
	IOS_PEOPLE_OUTLINE('\uf47b'),
	IOS_PERSON('\uf47e'),
	IOS_PERSON_OUTLINE('\uf47d'),
	IOS_PERSONADD('\uf480'),
	IOS_PERSONADD_OUTLINE('\uf47f'),
	IOS_PHOTOS('\uf482'),
	IOS_PHOTOS_OUTLINE('\uf481'),
	IOS_PIE('\uf484'),
	IOS_PIE_OUTLINE('\uf483'),
	IOS_PINT('\uf486'),
	IOS_PINT_OUTLINE('\uf485'),
	IOS_PLAY('\uf488'),
	IOS_PLAY_OUTLINE('\uf487'),
	IOS_PLUS('\uf48b'),
	IOS_PLUS_EMPTY('\uf489'),
	IOS_PLUS_OUTLINE('\uf48a'),
	IOS_PRICETAG('\uf48d'),
	IOS_PRICETAG_OUTLINE('\uf48c'),
	IOS_PRICETAGS('\uf48f'),
	IOS_PRICETAGS_OUTLINE('\uf48e'),
	IOS_PRINTER('\uf491'),
	IOS_PRINTER_OUTLINE('\uf490'),
	IOS_PULSE('\uf493'),
	IOS_PULSE_STRONG('\uf492'),
	IOS_RAINY('\uf495'),
	IOS_RAINY_OUTLINE('\uf494'),
	IOS_RECORDING('\uf497'),
	IOS_RECORDING_OUTLINE('\uf496'),
	IOS_REDO('\uf499'),
	IOS_REDO_OUTLINE('\uf498'),
	IOS_REFRESH('\uf49c'),
	IOS_REFRESH_EMPTY('\uf49a'),
	IOS_REFRESH_OUTLINE('\uf49b'),
	IOS_RELOAD('\uf49d'),
	IOS_REVERSE_CAMERA('\uf49f'),
	IOS_REVERSE_CAMERA_OUTLINE('\uf49e'),
	IOS_REWIND('\uf4a1'),
	IOS_REWIND_OUTLINE('\uf4a0'),
	IOS_ROSE('\uf4a3'),
	IOS_ROSE_OUTLINE('\uf4a2'),
	IOS_SEARCH('\uf4a5'),
	IOS_SEARCH_STRONG('\uf4a4'),
	IOS_SETTINGS('\uf4a7'),
	IOS_SETTINGS_STRONG('\uf4a6'),
	IOS_SHUFFLE('\uf4a9'),
	IOS_SHUFFLE_STRONG('\uf4a8'),
	IOS_SKIPBACKWARD('\uf4ab'),
	IOS_SKIPBACKWARD_OUTLINE('\uf4aa'),
	IOS_SKIPFORWARD('\uf4ad'),
	IOS_SKIPFORWARD_OUTLINE('\uf4ac'),
	IOS_SNOWY('\uf4ae'),
	IOS_SPEEDOMETER('\uf4b0'),
	IOS_SPEEDOMETER_OUTLINE('\uf4af'),
	IOS_STAR('\uf4b3'),
	IOS_STAR_HALF('\uf4b1'),
	IOS_STAR_OUTLINE('\uf4b2'),
	IOS_STOPWATCH('\uf4b5'),
	IOS_STOPWATCH_OUTLINE('\uf4b4'),
	IOS_SUNNY('\uf4b7'),
	IOS_SUNNY_OUTLINE('\uf4b6'),
	IOS_TELEPHONE('\uf4b9'),
	IOS_TELEPHONE_OUTLINE('\uf4b8'),
	IOS_TENNISBALL('\uf4bb'),
	IOS_TENNISBALL_OUTLINE('\uf4ba'),
	IOS_THUNDERSTORM('\uf4bd'),
	IOS_THUNDERSTORM_OUTLINE('\uf4bc'),
	IOS_TIME('\uf4bf'),
	IOS_TIME_OUTLINE('\uf4be'),
	IOS_TIMER('\uf4c1'),
	IOS_TIMER_OUTLINE('\uf4c0'),
	IOS_TOGGLE('\uf4c3'),
	IOS_TOGGLE_OUTLINE('\uf4c2'),
	IOS_TRASH('\uf4c5'),
	IOS_TRASH_OUTLINE('\uf4c4'),
	IOS_UNDO('\uf4c7'),
	IOS_UNDO_OUTLINE('\uf4c6'),
	IOS_UNLOCKED('\uf4c9'),
	IOS_UNLOCKED_OUTLINE('\uf4c8'),
	IOS_UPLOAD('\uf4cb'),
	IOS_UPLOAD_OUTLINE('\uf4ca'),
	IOS_VIDEOCAM('\uf4cd'),
	IOS_VIDEOCAM_OUTLINE('\uf4cc'),
	IOS_VOLUME_HIGH('\uf4ce'),
	IOS_VOLUME_LOW('\uf4cf'),
	IOS_WINEGLASS('\uf4d1'),
	IOS_WINEGLASS_OUTLINE('\uf4d0'),
	IOS_WORLD('\uf4d3'),
	IOS_WORLD_OUTLINE('\uf4d2'),
	IPAD('\uf1f9'),
	IPHONE('\uf1fa'),
	IPOD('\uf1fb'),
	JET('\uf295'),
	KEY('\uf296'),
	KNIFE('\uf297'),
	LAPTOP('\uf1fc'),
	LEAF('\uf1fd'),
	LEVELS('\uf298'),
	LIGHTBULB('\uf299'),
	LINK('\uf1fe'),
	LOAD_A('\uf29a'),
	LOAD_B('\uf29b'),
	LOAD_C('\uf29c'),
	LOAD_D('\uf29d'),
	LOCATION('\uf1ff'),
	LOCK_COMBINATION('\uf4d4'),
	LOCKED('\uf200'),
	LOG_IN('\uf29e'),
	LOG_OUT('\uf29f'),
	LOOP('\uf201'),
	MAGNET('\uf2a0'),
	MALE('\uf2a1'),
	MAN('\uf202'),
	MAP('\uf203'),
	MEDKIT('\uf2a2'),
	MERGE('\uf33f'),
	MIC_A('\uf204'),
	MIC_B('\uf205'),
	MIC_C('\uf206'),
	MINUS('\uf209'),
	MINUS_CIRCLED('\uf207'),
	MINUS_ROUND('\uf208'),
	MODEL_S('\uf2c1'),
	MONITOR('\uf20a'),
	MORE('\uf20b'),
	MOUSE('\uf340'),
	MUSIC_NOTE('\uf20c'),
	NAVICON('\uf20e'),
	NAVICON_ROUND('\uf20d'),
	NAVIGATE('\uf2a3'),
	NETWORK('\uf341'),
	NO_SMOKING('\uf2c2'),
	NUCLEAR('\uf2a4'),
	OUTLET('\uf342'),
	PAINTBRUSH('\uf4d5'),
	PAINTBUCKET('\uf4d6'),
	PAPER_AIRPLANE('\uf2c3'),
	PAPERCLIP('\uf20f'),
	PAUSE('\uf210'),
	PERSON('\uf213'),
	PERSON_ADD('\uf211'),
	PERSON_STALKER('\uf212'),
	PIE_GRAPH('\uf2a5'),
	PIN('\uf2a6'),
	PINPOINT('\uf2a7'),
	PIZZA('\uf2a8'),
	PLANE('\uf214'),
	PLANET('\uf343'),
	PLAY('\uf215'),
	PLAYSTATION('\uf30a'),
	PLUS('\uf218'),
	PLUS_CIRCLED('\uf216'),
	PLUS_ROUND('\uf217'),
	PODIUM('\uf344'),
	POUND('\uf219'),
	POWER('\uf2a9'),
	PRICETAG('\uf2aa'),
	PRICETAGS('\uf2ab'),
	PRINTER('\uf21a'),
	PULL_REQUEST('\uf345'),
	QR_SCANNER('\uf346'),
	QUOTE('\uf347'),
	RADIO_WAVES('\uf2ac'),
	RECORD('\uf21b'),
	REFRESH('\uf21c'),
	REPLY('\uf21e'),
	REPLY_ALL('\uf21d'),
	RIBBON_A('\uf348'),
	RIBBON_B('\uf349'),
	SAD('\uf34a'),
	SAD_OUTLINE('\uf4d7'),
	SCISSORS('\uf34b'),
	SEARCH('\uf21f'),
	SETTINGS('\uf2ad'),
	SHARE('\uf220'),
	SHUFFLE('\uf221'),
	SKIP_BACKWARD('\uf222'),
	SKIP_FORWARD('\uf223'),
	SOCIAL_ANDROID('\uf225'),
	SOCIAL_ANDROID_OUTLINE('\uf224'),
	SOCIAL_ANGULAR('\uf4d9'),
	SOCIAL_ANGULAR_OUTLINE('\uf4d8'),
	SOCIAL_APPLE('\uf227'),
	SOCIAL_APPLE_OUTLINE('\uf226'),
	SOCIAL_BITCOIN('\uf2af'),
	SOCIAL_BITCOIN_OUTLINE('\uf2ae'),
	SOCIAL_BUFFER('\uf229'),
	SOCIAL_BUFFER_OUTLINE('\uf228'),
	SOCIAL_CHROME('\uf4db'),
	SOCIAL_CHROME_OUTLINE('\uf4da'),
	SOCIAL_CODEPEN('\uf4dd'),
	SOCIAL_CODEPEN_OUTLINE('\uf4dc'),
	SOCIAL_CSS3('\uf4df'),
	SOCIAL_CSS3_OUTLINE('\uf4de'),
	SOCIAL_DESIGNERNEWS('\uf22b'),
	SOCIAL_DESIGNERNEWS_OUTLINE('\uf22a'),
	SOCIAL_DRIBBBLE('\uf22d'),
	SOCIAL_DRIBBBLE_OUTLINE('\uf22c'),
	SOCIAL_DROPBOX('\uf22f'),
	SOCIAL_DROPBOX_OUTLINE('\uf22e'),
	SOCIAL_EURO('\uf4e1'),
	SOCIAL_EURO_OUTLINE('\uf4e0'),
	SOCIAL_FACEBOOK('\uf231'),
	SOCIAL_FACEBOOK_OUTLINE('\uf230'),
	SOCIAL_FOURSQUARE('\uf34d'),
	SOCIAL_FOURSQUARE_OUTLINE('\uf34c'),
	SOCIAL_FREEBSD_DEVIL('\uf2c4'),
	SOCIAL_GITHUB('\uf233'),
	SOCIAL_GITHUB_OUTLINE('\uf232'),
	SOCIAL_GOOGLE('\uf34f'),
	SOCIAL_GOOGLE_OUTLINE('\uf34e'),
	SOCIAL_GOOGLEPLUS('\uf235'),
	SOCIAL_GOOGLEPLUS_OUTLINE('\uf234'),
	SOCIAL_HACKERNEWS('\uf237'),
	SOCIAL_HACKERNEWS_OUTLINE('\uf236'),
	SOCIAL_HTML5('\uf4e3'),
	SOCIAL_HTML5_OUTLINE('\uf4e2'),
	SOCIAL_INSTAGRAM('\uf351'),
	SOCIAL_INSTAGRAM_OUTLINE('\uf350'),
	SOCIAL_JAVASCRIPT('\uf4e5'),
	SOCIAL_JAVASCRIPT_OUTLINE('\uf4e4'),
	SOCIAL_LINKEDIN('\uf239'),
	SOCIAL_LINKEDIN_OUTLINE('\uf238'),
	SOCIAL_MARKDOWN('\uf4e6'),
	SOCIAL_NODEJS('\uf4e7'),
	SOCIAL_OCTOCAT('\uf4e8'),
	SOCIAL_PINTEREST('\uf2b1'),
	SOCIAL_PINTEREST_OUTLINE('\uf2b0'),
	SOCIAL_PYTHON('\uf4e9'),
	SOCIAL_REDDIT('\uf23b'),
	SOCIAL_REDDIT_OUTLINE('\uf23a'),
	SOCIAL_RSS('\uf23d'),
	SOCIAL_RSS_OUTLINE('\uf23c'),
	SOCIAL_SASS('\uf4ea'),
	SOCIAL_SKYPE('\uf23f'),
	SOCIAL_SKYPE_OUTLINE('\uf23e'),
	SOCIAL_SNAPCHAT('\uf4ec'),
	SOCIAL_SNAPCHAT_OUTLINE('\uf4eb'),
	SOCIAL_TUMBLR('\uf241'),
	SOCIAL_TUMBLR_OUTLINE('\uf240'),
	SOCIAL_TUX('\uf2c5'),
	SOCIAL_TWITCH('\uf4ee'),
	SOCIAL_TWITCH_OUTLINE('\uf4ed'),
	SOCIAL_TWITTER('\uf243'),
	SOCIAL_TWITTER_OUTLINE('\uf242'),
	SOCIAL_USD('\uf353'),
	SOCIAL_USD_OUTLINE('\uf352'),
	SOCIAL_VIMEO('\uf245'),
	SOCIAL_VIMEO_OUTLINE('\uf244'),
	SOCIAL_WHATSAPP('\uf4f0'),
	SOCIAL_WHATSAPP_OUTLINE('\uf4ef'),
	SOCIAL_WINDOWS('\uf247'),
	SOCIAL_WINDOWS_OUTLINE('\uf246'),
	SOCIAL_WORDPRESS('\uf249'),
	SOCIAL_WORDPRESS_OUTLINE('\uf248'),
	SOCIAL_YAHOO('\uf24b'),
	SOCIAL_YAHOO_OUTLINE('\uf24a'),
	SOCIAL_YEN('\uf4f2'),
	SOCIAL_YEN_OUTLINE('\uf4f1'),
	SOCIAL_YOUTUBE('\uf24d'),
	SOCIAL_YOUTUBE_OUTLINE('\uf24c'),
	SOUP_CAN('\uf4f4'),
	SOUP_CAN_OUTLINE('\uf4f3'),
	SPEAKERPHONE('\uf2b2'),
	SPEEDOMETER('\uf2b3'),
	SPOON('\uf2b4'),
	STAR('\uf24e'),
	STATS_BARS('\uf2b5'),
	STEAM('\uf30b'),
	STOP('\uf24f'),
	THERMOMETER('\uf2b6'),
	THUMBSDOWN('\uf250'),
	THUMBSUP('\uf251'),
	TOGGLE('\uf355'),
	TOGGLE_FILLED('\uf354'),
	TRANSGENDER('\uf4f5'),
	TRASH_A('\uf252'),
	TRASH_B('\uf253'),
	TROPHY('\uf356'),
	TSHIRT('\uf4f7'),
	TSHIRT_OUTLINE('\uf4f6'),
	UMBRELLA('\uf2b7'),
	UNIVERSITY('\uf357'),
	UNLOCKED('\uf254'),
	UPLOAD('\uf255'),
	USB('\uf2b8'),
	VIDEOCAMERA('\uf256'),
	VOLUME_HIGH('\uf257'),
	VOLUME_LOW('\uf258'),
	VOLUME_MEDIUM('\uf259'),
	VOLUME_MUTE('\uf25a'),
	WAND('\uf358'),
	WATERDROP('\uf25b'),
	WIFI('\uf25c'),
	WINEGLASS('\uf2b9'),
	WOMAN('\uf25d'),
	WRENCH('\uf2ba'),
	XBOX('\uf30c');

	private static final String IONICONS_SET = "/com/rapidminer/resources/fonts/ionicons.ttf";

	private static String FONT;

	private static final String ERROR = "<span style=\"color:red; font-weight: bold;\">?</span>";

	static {
		try (InputStream stream = Ionicon.class.getResourceAsStream(IONICONS_SET)) {
			Font ionicons = Font.createFont(Font.TRUETYPE_FONT, stream);
			GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment();
			genv.registerFont(ionicons);

			FONT = "<span style=\"font-family: " + ionicons.getFamily() + "; font-style: normal;\">%s</span>";

		} catch (FontFormatException | IOException e) {
			LogService.getRoot().log(Level.WARNING, "com.rapidminer.gui.tools.Ionicon.font_load_failed", e.getMessage());
		}
	}

	private char character;

	private Ionicon(char character) {
		this.character = character;
	}

	/**
	 * @return the html for including the ionicon into a html label
	 */
	public String getHtml() {
		if (FONT != null) {
			return String.format(FONT, character);
		} else {
			return ERROR;
		}

	}
}
